package de.sonnentempel.dao;

import java.util.Date;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import de.sonnentempel.entity.Besuch;
import de.sonnentempel.entity.Kunde;
import de.sonnentempel.framework.JPAUtil;

public class BesuchDAOImpl implements BesuchDAO {

	private DAOHelper helper;

	public BesuchDAOImpl() {
		helper = new DAOHelper(Besuch.class);
	}

	
	
	
	@Override
	public Besuch save(Besuch o) throws Exception {
		return (Besuch) helper.save(o);
		}

	@Override
	public Besuch getById(Long id) throws Exception {
		return (Besuch) helper.getById(id);
	}

	@Override
	public Besuch update(Besuch o) throws Exception {
		return (Besuch) helper.update(o);
	}

	@Override
	public void deleteById(Besuch o) throws Exception {
		helper.deleteById(o);
	}

	@Override
	public List<Besuch> getAll() throws Exception {
		EntityManager em = JPAUtil.getEntityManager();
		Query q = em.createQuery("select b from Besuch b");
		List<Besuch> ret = q.getResultList();
		em.close();
		return ret;
	}

	@Override
	public List<Besuch> getAllBesucheFromKunde(Kunde kunde) {
		EntityManager em = JPAUtil.getEntityManager();
		Query q = em.createQuery("select b from Besuch b where kunde_id=" + kunde.getId());
		List<Besuch> ret = q.getResultList();
		return ret;
	}

	@Override
	public List<Besuch> getAllBesucheAtDate(Date date) {
//		EntityManager em = JPAUtil.getEntityManager();
//		Query q = em.createQuery("select b from Besuch b where date=" + date);
//		List<Besuch> ret = q.getResultList();
		return null;
	}

}
